Software products such as operating systems and application programs often contain materials that are protected under copyright law, which grants the author of a piece of original work (e.g., software code) exclusive rights over the usage and distribution of the work. To obtain a copy of a software product from a vendor who owns rights to that software product, a user typically enters into a license agreement with the vendor, which governs how the user may use and/or distribute the software product. For example, the license agreement may restrict the number of times a user can install the software and/or the number of computers on which the software can be installed.
Unauthorized copies of software products may be very damaging to vendors selling licenses to those products. To prevent use of unauthorized copies, software vendors often require that an “activation” process be completed when an attempt is made to install a copy of a software product. This process may be designed to determine whether the copy is authorized for installation (e.g., whether the copy was legitimately purchased by the user) and/or whether the installation is in compliance with one or more applicable license agreements (e.g., whether the user has exceeded a maximum number of permitted installations). Where a software product is offered in multiple editions (e.g., professional and home editions), the activation process may also identify the edition purchased by the user and selectively enable one or more features in the software product according to the identified edition.
Some conventional software activation techniques make use of a so-called “product key,” which is a piece of information made available to a user when the user legitimately purchases or otherwise legitimately obtains a copy of a software product. During the activation process, the user provides the product key as “proof” of legitimacy. When such proof is accepted or validated, the user is given permission to complete the installation, and appropriate features in the software product are enabled depending on the license(s) granted to the user for that particular installation.